package com.vecspace.dayu.code.template.httphandler;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;

import com.vecspace.dayu.code.template.pojo.CodeTemplate;
import com.vecspace.dayu.code.template.service.CodeTemplateService;
import com.vecspace.security.model.LoginContext;
import com.vecspace.web.servlet.model.BaseController;
import com.vecspace.web.servlet.model.HController;
import com.vecspace.web.servlet.model.Param;
import com.vecspace.web.servlet.model.Path;

@HController("dayucode_codeTemplateHandler")
public class CodeTemplateHandler extends BaseController{
	

	@Path("getCodeTemplate")
	public CodeTemplate getCodeTemplate(@Param("id")Long id) throws Exception{
		return codeTemplateService.getCodeTemplate(id);
	}
	
	/**获取一个布局类型下的所有页面模板
	 * 
	 * @param layoutId
	 * @return
	 * @throws Exception 
	 * @author wanghua
	 */
	@Path("getCodeTemplatesByLayout")
	public List<CodeTemplate> getCodeTemplatesByLayout(@Param("layoutId")Long layoutId) throws Exception{
		return codeTemplateService.getCodeTemplatesByLayout(layoutId);
	}
	
	/***将页面上传入的对象转为持久化对象（如果页面对象是一个新对象，则insert;否则从数据库库查询出已有的对象item2，将传入的值赋值给item2，然后将item2 update到数据库）
	 * 根据页面上放置的属性个数，需要对下面的属性设置进行调整。
	 * 对于无法在页面上进行修改的属性，不要进行设值。
	 * @param item item是由页面传递过来的对象，item中的属性并不完整，对于在页面上没有展示的属性，item中一律会是空值，而数据库中这些属性可以是有值的
	 * @return CodeTemplate
	 * @throws Exception
	 * @author wanghua
	 */
	@Path("saveCodeTemplate")
	public CodeTemplate saveCodeTemplate(@Param("item")CodeTemplate item) throws Exception {
		String loginUserId = LoginContext.getLoginId();
		return codeTemplateService.saveViewCodeTemplate(item, loginUserId);
	}
	
	/** 根据ID删除 DAYU_CODE_TEMPLATE 
	 * @param id	主键值
	 * @return void
	 * @throws Exception
	 * @author wanghua
	 */
	@Path("deleteCodeTemplate")
	public void deleteCodeTemplate(@Param("id")Long id) throws Exception{		
		codeTemplateService.deleteCodeTemplate(id);
	}

	@Autowired
	private CodeTemplateService codeTemplateService;
}
